//
//  HMBaseNavViewController.swift
//  新浪微博
//
//  Created by 饶鹏伟 on 16/4/8.
//  Copyright © 2016年 饶鹏伟. All rights reserved.
//

import UIKit

class HMBaseNavViewController: UINavigationController,UIGestureRecognizerDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()

        self.interactivePopGestureRecognizer?.delegate=self
    }

    //重写父类方法 如果不super 不会加载根控制器
    override func pushViewController(viewController: UIViewController, animated: Bool) {
        
        //print(childViewControllers.count)
        
        //如果这个导航控制器有子控制器 
        if childViewControllers.count > 0 {
            
            var backtitle="返回"
            if childViewControllers.count==1{
                //获取第一个控制器的标题 显示在跳转后的控制器的左边按钮
              backtitle=childViewControllers.first?.title ?? ""
                
            }
            
            //设置控制器导航条左边的按钮
            viewController.navigationItem.leftBarButtonItem = UIBarButtonItem(imageName: "navigationbar_back_withtext", title: backtitle, target: self, action: "back")
            //当跳转到下一个控制器 隐藏底部tabbar
            viewController.hidesBottomBarWhenPushed = true
            
            //设置颜色   页面跳转的时候会有颜色切换 导致卡顿
            viewController.view.backgroundColor = UIColor.whiteColor()

    }
        
        //放在判断之后调用 就是让首页这个控制器左边不设置tabbar
        super.pushViewController(viewController, animated: animated)
        //print(childViewControllers.count)

    
    }

    //点击返回 返回上一个控制器
    @objc private func back() {
        self.popViewControllerAnimated(true)
    }
    

    //手势将要开始的协议方法
    //协议方法返回值是 bool值 如果返回ture  就可以正常工作,如果返回false 手势就会失效
    func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer) -> Bool {
    
        print("手势开始")
        
        // 如果是第一个控制器 手势取消
         return childViewControllers.count != 1
    }
    
    
}
